package com.baibei.order.settlement;

import com.baibei.basic.IPresenter;
import com.baibei.basic.IPresenterView;
import com.baibei.model.AddressInfo;
import com.baibei.model.BalanceInfo;
import com.baibei.model.OrderInfo;

/**
 * 补款取货
 * Created by ChenRui on 2017/8/11 0011 16:36.
 */
public interface SettlementContract {

    interface Presenter extends IPresenter {

        void pay();

        double getAmount();

        void resume();

    }

    interface View extends IPresenterView {

        /**
         * 没有地址
         */
        void onEmptyAddress();

        /**
         * 加载默认地址
         *
         * @param addressInfo 地址信息
         */
        void onLoadDefaultAddress(AddressInfo addressInfo);

        OrderInfo getOrderInfo();

        /**
         * 订单信息更新
         */
        void onLoadOrderInfo(OrderInfo orderInfo);

        /**
         * 加载补款金额
         */
        void onLoadAmount(double amount);

        /**
         * 加载余额错误
         */
        void onLoadBalanceFailed(String msg);

        /**
         * 加载余额
         */
        void onLoadBalanceInfo(BalanceInfo balanceInfo);

        /**
         * 支付成功
         */
        void onPaySuccess();

        /**
         * 支付失败
         *
         * @param s
         */
        void onPayFailed(String s);

        /**
         * 获取选择的地址ID
         */
        String getAddressId();

        void onNotMoney();

        void onTradeTimeout();
    }
}
